#ifndef OOPSMP_UTILS_GENERAL_BBOX_BVFACTORY_H_
#define OOPSMP_UTILS_GENERAL_BBOX_BVFACTORY_H_

#include <cstring>
#include "OOPSMP/Utils/General/BBox/BVGeneric.h"
#include "OOPSMP/Utils/General/BBox/BoundingBox3D.h"

namespace OOPSMP {
	
	/**
	 *@brief Macro for class, class pointer, and const class pointer
	 *       declarations 
	 */
	ForwardClassDeclaration(BVFactory);
	
	/**
	 *@brief bv factory
	 */ 
	class BVFactory {

	public:
		
		/**
		 *@brief Returns pointer to new bbox instance
		 *@param bboxType name of bbox class
		 */ 
		static BVGeneric * getBBoxInstance( std::string bboxType ) {

			if ( bboxType.compare("BoundingBox3D") == 0 )
				return (new BoundingBox3D());
			else
				return NULL;

		}

	};
}

#endif